import logging
from datetime import datetime
from time import sleep
import os


def get_daily_logger(log_dir="logs"):
    """每天创建新的日志文件，完全避免轮转问题"""
    today = datetime.now().strftime('%Y-%m-%d-%H-%M')

    if not os.path.exists(log_dir):
        os.makedirs(log_dir)

    log_filename = os.path.join(log_dir, today)

    logger = logging.getLogger(f'my_app_{today}')

    # 如果今天已经创建过logger，直接返回
    if logger.handlers:
        return logger

    logger.setLevel(logging.INFO)

    # 使用简单的FileHandler，不轮转
    handler = logging.FileHandler(log_filename, encoding='utf-8')

    formatter = logging.Formatter(
        '%(asctime)s [%(levelname)s] %(name)s - %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S'
    )
    handler.setFormatter(formatter)
    logger.addHandler(handler)

    return logger

if __name__ == '__main__':
    # 使用示例
    logger = get_daily_logger()
    logger.info("今天的日志")
    sleep(65)
    logger = get_daily_logger()
    logger.info("一分钟后的日志")